/*
 * urt_structs.h
 *
 *  Created on: 30 mars 2012
 *	  Author: holblin
 */

#ifndef URT_STRUCTS_H_
#define URT_STRUCTS_H_


#include <stdbool.h>


// petit racourcie pour les usigned short
typedef unsigned short ushort;

// enumeration des différents evenements
typedef enum { /* event_t */
	EVENT_ASSASSINWINNER_BLUE,	// AssassinWinner: Red Reached the Flag
	EVENT_ASSASSINWINNER_RED,	// AssassinWinner: Blue Reached the Flag
	EVENT_BOMB_TOSSED,			// Bomb was tossed by 6
	EVENT_BOMB_PLANTED,			// Bomb was planted by 6
	EVENT_BOMB_DEFUSED,			// Bomb was defused by 8!
	EVENT_BOMB_COLLECTED,		// Bomb has been collected by 9
	EVENT_BOMBHOLDER,			// Bombholder is 6
	EVENT_CLIENTBEGIN,			// ClientBegin: 6
	EVENT_CLIENTCONNECT,		// ClientConnect: 6
	EVENT_CLIENTDISCONNECT,		// ClientDisconnect: 6
	EVENT_CLIENTUSERINFO,		// ClientUserinfo:(.*)$
	EVENT_CLIENTUSERINFOCHANGED,// ClientUserinfoChanged:(.*)$
	EVENT_EXIT_TIMELIMIT,		// Exit: Timelimit hit.
	EVENT_EXIT_FRAGLIMIT,		// Exit: Fraglimit hit.
	EVENT_FLAG,					// Flag: 7 2: team_CTF_blueflag
	EVENT_FLAG_RETURN_BLUE,		// Flag Return: BLUE
	EVENT_FLAG_RETURN_RED,		// Flag Return: RED
	EVENT_HIT,					// Hit: 7 6 3 8: MQCD||Nyod hit MQCD|H-Star in the Kevlar
	EVENT_INITGAME,				// InitGame:
	EVENT_INITROUND,			// InitRound:
	EVENT_ITEM,					// Item: 6 team_CTF_redflag
	EVENT_KILL,					// Kill: 6 6 10: rafiky killed rafiky by MOD_CHANGE_TEAM
	EVENT_POP,					// Pop!
	EVENT_RED,					// red:10  blue:6
	EVENT_SAY,					// say: 8 Chipper: Salut! Hi!
	EVENT_SAYTEAM,				// sayteam: 11 Useless: soz
	EVENT_SAYTELL,				// saytell: 8 9 yumyum: wtf
	EVENT_SCORE,				// score: 137  ping: 50  client: 14 Wataii
	EVENT_SHUTDOWNGAME,			// ShutdownGame:
	EVENT_SURVIVORWINNER_DRAW,	// SurvivorWinner: Draw
	EVENT_SURVIVORWINNER_BLUE,	// SurvivorWinner: Blue
	EVENT_SURVIVORWINNER_RED,	// SurvivorWinner: Red
	EVENT_TELL,					// tell: yumyum to mike: wtf
	EVENT_WARMUP,				// Warmup:
	EVENT_BIG_MIDDLE_LINE,		// ------------------------------------------------------------

	EVENT_MAX
} event_t;

typedef enum { /* item_t */
	ITEM_REDFLAG,		// team_CTF_redflag
	ITEM_BLUEFLAG,		// team_CTF_blueflag
	ITEM_VEST,			// ut_item_vest
	ITEM_HELMET,		// ut_item_helmet
	ITEM_MEDKIT,		// ut_item_medkit
	ITEM_EXTRAAMMO,		// ut_item_extraammo
	ITEM_LASER,			// ut_item_laser
	ITEM_SILENCER,		// ut_item_silencer
	ITEM_NVG,			// ut_item_nvg
	ITEM_KNIFE,			// ut_weapon_knife
	ITEM_BERETTA,		// ut_weapon_beretta
	ITEM_DEAGLE,		// ut_weapon_deagle
	ITEM_MP5K,			// ut_weapon_mp5k
	ITEM_UMP45,			// ut_weapon_ump45
	ITEM_SPAS12,		// ut_weapon_spas12
	ITEM_NEGEV,			// ut_weapon_negev
	ITEM_HK69,			// ut_weapon_hk69
	ITEM_LR,			// ut_weapon_lr
	ITEM_M4,			// ut_weapon_m4
	ITEM_AK103,			// ut_weapon_ak103
	ITEM_G36,			// ut_weapon_g36
	ITEM_PSG1,			// ut_weapon_psg1
	ITEM_SR8,			// ut_weapon_sr8
	ITEM_BOMB,			// ut_weapon_bomb
	ITEM_GRENADE_HE,	// ut_weapon_grenade_he
	ITEM_GRENADE_SMOKE,	// ut_weapon_grenade_smoke
} item_t;

typedef enum { /* weapon_t */
	WEAPON_KNIFE			= 1,
	WEAPON_BERETTA			= 2,
	WEAPON_DEAGLE			= 3,
	WEAPON_SPAS12			= 4,
	WEAPON_MP5K				= 5,
	WEAPON_UMP45			= 6,
	WEAPON_HK69				= 7,
	WEAPON_M4				= 8,
	WEAPON_G36				= 9,
	WEAPON_PSG1				= 10,
	WEAPON_GRENADE_HE		= 11,
	WEAPON_GRENADE_SMOKE	= 13,
	WEAPON_SR8				= 14,
	WEAPON_AK103			= 15,
	WEAPON_NEGEV			= 17
} weapon_t;

typedef enum { /* hizone_t */
	HITZONE_HEAD	= 0,
	HITZONE_HELMET	= 1,
	HITZONE_TORSO	= 2,
	HITZONE_KEVLAR	= 3,
	HITZONE_ARMS	= 4,
	HITZONE_LEGS	= 5,
	HITZONE_BODY	= 6
} hizone_t;


typedef enum { /* killtype_t */
	KILL_WATER			= 1,	//1:      MOD_WATER === exclusive attackers : , 1022(<world>), 0(<non-client>)
	KILL_LAVA			= 3,	//3:      MOD_LAVA === exclusive attackers : , 1022(<world>), 0(<non-client>)
	KILL_TELEPORT		= 5,	//5:      MOD_TELEFRAG --- normal kill line
	KILL_FALLING		= 6,	//6:      MOD_FALLING === exclusive attackers : , 1022(<world>), 0(<non-client>)
	KILL_SUICIDE		= 7,	//7:      MOD_SUICIDE ===> attacker is always the victim
	KILL_TRIGGER_HURT	= 9,	//9:      MOD_TRIGGER_HURT === exclusive attackers : , 1022(<world>)
	KILL_CHANGE_TEAM	= 10,	//10:     MOD_CHANGE_TEAM ===> attacker is always the victim
	KILL_KNIFE			= 12,	//12:     UT_MOD_KNIFE --- normal kill line
	KILL_KNIFE_THROWN	= 13,	//13:     UT_MOD_KNIFE_THROWN --- normal kill line
	KILL_BERETTA		= 14,	//14:     UT_MOD_BERETTA --- normal kill line
	KILL_DEAGLE			= 15,	//15:     UT_MOD_DEAGLE --- normal kill line
	KILL_SPAS			= 16,	//16:     UT_MOD_SPAS --- normal kill line
	KILL_UMP45			= 17,	//17:     UT_MOD_UMP45 --- normal kill line
	KILL_MP5K			= 18,	//18:     UT_MOD_MP5K --- normal kill line
	KILL_LR300			= 19,	//19:     UT_MOD_LR300 --- normal kill line
	KILL_G36			= 20,	//20:     UT_MOD_G36 --- normal kill line
	KILL_PSG1			= 21,	//21:     UT_MOD_PSG1 --- normal kill line
	KILL_HK69			= 22,	//22:     UT_MOD_HK69 --- normal kill line
	KILL_BLED			= 23,	//23:     UT_MOD_BLED --- normal kill line
	KILL_KICKED			= 24,	//24:     UT_MOD_KICKED --- normal kill line
	KILL_HEGRENADE		= 25,	//25:     UT_MOD_HEGRENADE --- normal kill line
	KILL_SR8			= 28,	//28:     UT_MOD_SR8 --- normal kill line
	KILL_AK103			= 30,	//30:     UT_MOD_AK103 --- normal kill line
	KILL_SPLODED		= 31,	//31:     UT_MOD_SPLODED ===> attacker is always the victim
	KILL_SLAPPED		= 32,	//32:     UT_MOD_SLAPPED ===> attacker is always the victim
	KILL_BOMBED			= 33,	//33:     UT_MOD_BOMBED --- normal kill line
	KILL_NUKED			= 34,	//34:     UT_MOD_NUKED --- normal kill line
	KILL_NEGEV			= 35,	//35:     UT_MOD_NEGEV --- normal kill line
	KILL_HK69_HIT		= 37,	//37:     UT_MOD_HK69_HIT --- normal kill line
	KILL_M4				= 38,	//38:     UT_MOD_M4 --- normal kill line
	KILL_FLAG			= 39,	//39:     UT_MOD_FLAG === exclusive attackers : , 0(<non-client>)
	KILL_GOOMBA			= 40	//40:     UT_MOD_GOOMBA --- normal kill line
} killtype_t;


#endif /* URT_STRUCTS_H_ */
